home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zl.d64 / prc.label'axis < prev    next >
Text File  |  2007-03-01  |  2KB  |  65 lines

  1. 0010 ╨╥╧├ LABEL'AXIS(NUM'INTERVALS,INTERVAL,START,OX,OY,LENGTH,AXIS) ├╠╧╙┼─
  2. 0020   //GRAPH AXIS LABELLER: REQUIRES GRAPHICS TO BE ACTIVATED BEFORE CALLING
  3. 0030   //╒SES THE STARTUP SCREEN CO-ORDINATES TO SPECIFY LENGTHS ETC.
  4. 0040   
  5. 0050   //NUM'INTERVALS:- THE NUMBER OF INTERVALS REQUIRED.
  6. 0060   //INTERVAL:- THE DISTANCE BETWEEN ADJACENT GRADUATION TICKS SPECIFIED
  7. 0070   //IN THE SCALED UNITS TO BE USED.
  8. 0080   //START:- THE START VALUE OF THE LABEL TO BE PLACED AT THE BEGINNING OF
  9. 0090   //THE GRAPH AXIS AT OX,OY
  10. 0100   //LENGTH:- THE LENGTH OF THE AXIS LINE IN PIXELS.
  11. 0110   //AXIS:- A FLAG USED TO SPECIFY WHICH AXIS IS TO BE DRAWN AND LABELLED
  12. 0120   //=0  FOR THE X AXIS
  13. 0130   //=1  FOR THE Y AXIS
  14. 0140   //OX,OY:- THE SCREEN CO-ORDINATES OF THE START OF THE AXIS TO BE DRAWN.
  15. 0150   
  16. 0160   ╔═╨╧╥╘ TEXTSTYLE,MOVETO,DRAW,PLOTTEXT
  17. 0170   ─╔═ N$ ╧╞ 6
  18. 0180   TICK:=6 //SIZE OF A GRADUATION MARK
  19. 0190   GAP:=2 //GAP BETWEEN TICK AND TEXT
  20. 0200   H:=8 //TEXT HEIGHT
  21. 0210   W:=8 //TEXT WIDTH
  22. 0220   
  23. 0230   TEXTSTYLE(1,1,0,-1)
  24. 0240   GRAD:=LENGTH/NUM'INTERVALS
  25. 0250   MOVETO(OX,OY)
  26. 0260   ├┴╙┼ AXIS ╧╞
  27. 0270   ╫╚┼╬ 0
  28. 0280     DRAW(LENGTH,0)
  29. 0290   ╫╚┼╬ 1
  30. 0300     DRAW(0,LENGTH)
  31. 0310   ╧╘╚┼╥╫╔╙┼ 
  32. 0320     ╙╘╧╨ "UNEXPECTED AXIS DEFINITION"
  33. 0330   ┼╬─├┴╙┼ 
  34. 0340   ╞╧╥ I:=0 ╘╧ NUM'INTERVALS ─╧
  35. 0350     ├┴╙┼ AXIS ╧╞
  36. 0360     ╫╚┼╬ 0
  37. 0370       X:=OX+I*GRAD
  38. 0380       Y:=OY
  39. 0390     ╫╚┼╬ 1
  40. 0400       X:=OX
  41. 0410       Y:=OY+I*GRAD
  42. 0420     ┼╬─├┴╙┼ 
  43. 0430     MOVETO(X,Y)
  44. 0440     ├┴╙┼ AXIS ╧╞
  45. 0450     ╫╚┼╬ 0
  46. 0460       DRAW(0,-TICK)
  47. 0470     ╫╚┼╬ 1
  48. 0480       DRAW(-TICK,0)
  49. 0490     ┼╬─├┴╙┼ 
  50. 0500     NUM:=START+I*INTERVAL
  51. 0510     N$:=╙╘╥$(NUM)
  52. 0520     L:=╠┼╬(N$)
  53. 0530     L2:=L*.5
  54. 0540     ├┴╙┼ AXIS ╧╞
  55. 0550     ╫╚┼╬ 0
  56. 0560       PX:=X-W*L2
  57. 0570       PY:=Y-TICK-GAP-H
  58. 0580     ╫╚┼╬ 1
  59. 0590       PX:=X-TICK-GAP-W*L
  60. 0600       PY:=Y-H*.5
  61. 0610     ┼╬─├┴╙┼ 
  62. 0620     PLOTTEXT(PX,PY,N$)
  63. 0630   ┼╬─╞╧╥ I
  64. 0640 ┼╬─╨╥╧├ LABEL'AXIS
  65.